Method and system for sidelobe suppression in phase encoded doppler lidar

ABSTRACT

A method for controlling a light detection and ranging (LIDAR) sensor system includes determining a code that has a first set of symbols having a first number of symbols. An optical signal generated based on the code is transmitted to an environment. The first set of symbols are transmitted as part of the optical signal in a first duration. In response to transmitting the optical signal, a returned optical signal that is reflected from an object in the environment is received. A second number of symbols to be sampled is determined, the second number of symbols being different than the first number of symbols. A second set of symbols having the second number of symbols is sampled in a second duration based on the returned optical signal. A range to the object is determined based on the second set of symbols.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation application of U.S. patentapplication Ser. No. 17/228,335 filed Apr. 12, 2021, which claims thebenefit of and priority to U.S. patent application Ser. No. 16/928,823filed Jul. 14, 2020, which claims the benefit of and priority to U.S.Provisional Patent Application No. 62/874,351, filed Jul. 15, 2019. Theentire contents of U.S. Provisional Patent Application No. 62/874,351,U.S. patent application Ser. No. 16/928,823 and U.S. patent applicationSer. No. 17/228,335 are hereby incorporated by reference as if fully setforth herein.

BACKGROUND

Optical detection of range using lasers, often referenced by a mnemonic,LIDAR, for light detection and ranging, is used for a variety ofapplications, from altimetry, to imaging, to collision avoidance. LIDARprovides finer scale range resolution with smaller beam sizes thanconventional microwave ranging systems, such as radio-wave detection andranging (RADAR). Optical detection of range can be accomplished withseveral different techniques, including direct ranging based on roundtrip travel time of an optical pulse to an object, and chirped detectionbased on a frequency difference between a transmitted chirped opticalsignal and a returned signal scattered from an object, and phase-encodeddetection based on a sequence of single frequency phase changes that aredistinguishable from natural signals.

SUMMARY

Aspects of the present disclosure relate generally to light detectionand ranging (LIDAR) in the field of optics, and more particularly tosystems and method for sidelobe suppression in phase-encoded DopplerLIDAR to support the operation of a vehicle.

One implementation disclosed herein is directed a LIDAR system forsidelobe suppression in phase-encoded Doppler LIDAR. In someimplementations, the LIDAR system includes one or more processors; andone or more computer-readable storage mediums storing instructionswhich, when executed by the one or more processors, cause the one ormore processors to determine a sequence code that is indicative of asequence of phases for an optical signal; modulate an optical signalbased on the sequence code to produce a phase-encoded optical signal;transmit the phase-encoded optical signal to an environment; receive,from the environment, a returned optical signal in response totransmitting the phase-encoded optical signal; generate, based on thereturned optical signal, an electrical signal; and determine a Dopplerfrequency shift in the returned optical signal based on the electricalsignal.

In another aspect, the present disclosure is directed to an autonomousvehicle control system including one or more processors; and one or morecomputer-readable storage mediums storing instructions which, whenexecuted by the one or more processors, cause the one or more processorsto determine a sequence code that is indicative of a sequence of phasesfor an optical signal. In some implementations, the one or morecomputer-readable storage mediums storing instructions which, whenexecuted by the one or more processors, cause the one or more processorsto cause an optical signal to be modulated based on the sequence code toproduce a phase-encoded optical signal. In some implementations, the oneor more computer-readable storage mediums storing instructions which,when executed by the one or more processors, cause the one or moreprocessors to cause an optical detector to receive a returned signalfrom an environment by causing the phase-encoded optical signal to betransmitted into the environment. In some implementations, the one ormore computer-readable storage mediums storing instructions which, whenexecuted by the one or more processors, cause the one or more processorsto obtain an electrical signal from the optical detector in response tocausing the optical detector to receive the returned signal from theenvironment. In some implementations, the one or more computer-readablestorage mediums storing instructions which, when executed by the one ormore processors, cause the one or more processors to determine a Dopplerfrequency shift in the returned optical signal based on the electricalsignal. In some implementations, the one or more computer-readablestorage mediums storing instructions which, when executed by the one ormore processors, cause the one or more processors to control operationof a vehicle using the Doppler frequency shift.

In another aspect, the present disclosure is directed to an autonomousvehicle. In some implementations, the autonomous vehicle includes atleast one of a steering system or a braking system. In someimplementations, the autonomous vehicle includes a vehicle controllercomprising one or more processors configured to determine a sequencecode that is indicative of a sequence of phases for an optical signal.In some implementations, the one or more processors are configured tomodulate an optical signal based on the sequence code to produce aphase-encoded optical signal. In some implementations, the one or moreprocessors are configured to transmit the phase-encoded optical signalto an environment. In some implementations, the one or more processorsare configured to receive, from the environment, a returned opticalsignal in response to transmitting the phase-encoded optical signal. Insome implementations, the one or more processors are configured togenerate, based on the returned optical signal, an electrical signal. Insome implementations, the one or more processors are configured todetermine a Doppler frequency shift in the returned optical signal basedon the electrical signal. In some implementations, the one or moreprocessors are configured to control the at least one of the steeringsystem or the braking system using the Doppler frequency shift.

Still other aspects, features, and advantages are readily apparent fromthe following detailed description, simply by illustrating a number ofparticular implementations and implementations, including the best modecontemplated for carrying out the present disclosure. Otherimplementations are also capable of other and different features andadvantages, and its several details can be modified in various obviousrespects, all without departing from the spirit and scope of the presentdisclosure. Accordingly, the drawings and description are to be regardedas illustrative in nature, and not as restrictive.

BRIEF DESCRIPTION OF THE DRAWINGS

Implementations are illustrated by way of example, and not by way oflimitation, in the figures of the accompanying drawings in which likereference numerals refer to similar elements and in which:

FIG. 1A is a schematic graph that illustrates an example transmittedoptical phase-encoded signal for measurement of range, according to animplementation;

FIG. 1B is a schematic graph that illustrates the example transmittedsignal of FIG. 1A as a series of binary digits along with returnedoptical signals for measurement of range, according to animplementation;

FIG. 1C is a schematic graph that illustrates example cross-correlationsof a reference signal with two returned signals, according to animplementation;

FIG. 1D is a schematic graph that illustrates an example spectrum of thereference signal and an example spectrum of a Doppler shifted returnsignal, according to an implementation;

FIG. 1E is a schematic graph that illustrates an example cross-spectrumof phase components of a Doppler shifted return signal, according to animplementation;

FIG. 2 is a block diagram that illustrates example components of a highresolution LIDAR system, according to an implementation;

FIG. 3 is a block diagram that illustrates an example difference betweenan m-sequence code and a practical code for digital signal processing(DSP), according to an implementation;

FIG. 4A is a graph that illustrates an example autocorrelation of anm-sequence code without padding, used in some implementations;

FIG. 4B is a graph that illustrates an example autocorrelation of anm-sequence code with padding, used in some implementations;

FIG. 5 is a block diagram that illustrates example components of a highresolution LIDAR system with fractional divider added to adjust clocksignal from master clock, according to an implementation;

FIG. 6A is a graph that illustrates an example autocorrelation ofreceived signal based on a Z=11 m-sequence code (#1 from Church),according to an implementation;

FIG. 6B is a graph that illustrates an example autocorrelation ofreceived signal based on a Z=11 m-sequence code (#1 from Church) paddedwith zeros to a length of a power of two according to an implementation;

FIG. 6C is a graph that illustrates an example autocorrelation ofreceived signal based on a Z=11 m-sequence code (#1 from Church) wherethe signal is linearly interpolated from 4094 samples to 4096 samplesprior to fast Fourier transform (FFT) processing, according to animplementation;

FIG. 7A through FIG. 7C show processing similar to that in FIG. 6Athrough FIG. 6C, but for a received signal Doppler shifted a non-integer(3.05) multiple of the native frequency, according to an implementation;

FIG. 8A through FIG. 8C show processing similar to that in FIG. 6Athrough FIG. 6C, but for a received signal Doppler shifted a differentnon-integer (3.25) multiple of the native frequency, according to animplementation;

FIG. 9A and FIG. 9B are graphs that illustrate example sidelobereduction achieved by semi-random insertions, according to animplementation;

FIG. 10A through FIG. 10C are graphs that illustrate examplecharacteristics of largest sidelobes, according to variousimplementations;

FIG. 11A and FIG. 11B are plots that illustrate example spurs insimulations of autocorrelations for different m-sequence codes,according to an implementation;

FIG. 12 is a graph that illustrates an example waterfall plot of rangeprofiles using the m-sequence of FIG. 11B, according to animplementation;

FIG. 13A through FIG. 13C are graphs that illustrate example dominantrange spurs for each m-sequence of size Z=9, Z=10, and Z=11,respectively, according to various implementations;

FIG. 14A is a flow diagram that illustrates an example method to reducesidelobes in efficient FFT processing of phase-encoded LIDAR, accordingto an implementation.

FIG. 14B is a flow diagram that illustrates an example method 1400B toreduce sidelobes in efficient FFT processing of phase-encoded LIDAR,according to an implementation.

FIG. 15 is a block diagram that illustrates a computer system upon whichone or more features of the present disclosure may be implemented; and

FIG. 16 illustrates a chip set upon which one or more features of thepresent disclosure may be implemented.

DETAILED DESCRIPTION

To achieve acceptable range accuracy and detection sensitivity, directlong-range LIDAR systems use short pulse lasers with low pulserepetition rate and extremely high pulse peak power. The high pulsepower can lead to rapid degradation of optical components. Chirped andphase-encoded LIDAR systems use long optical pulses with relatively lowpeak optical power. In this configuration, the range accuracy increaseswith the chirp bandwidth or length of the phase codes in a given timeinterval rather than the pulse duration, and therefore excellent rangeaccuracy can still be obtained with less degradation of opticalcomponents.

LIDAR detection with phase-encoded microwave signals modulated onto anoptical carrier have been used as well. Here bandwidth B is proportionalto the inverse of the duration r of the pulse that carries each phase(B=1/τ), with any phase-encoded signal made up of a large number of suchpulses. This technique relies on correlating a sequence of phases (orphase changes) of a particular frequency in a return signal with that inthe transmitted signal. A time delay associated with a peak incorrelation is related to range by the speed of light in the medium.Range resolution is proportional to the pulse width r. Advantages ofthis technique include the need for fewer components, and the use ofmass-produced hardware components developed for phase-encoded microwaveand optical communications.

Recent work shows arrangement of optical components and coherentprocessing to detect Doppler shifts in returned signals that provide notonly improved range but also relative signed speed on a vector betweenthe LIDAR system and each external object. These systems are calledhi-res range-Doppler LIDAR herein. See for example World IntellectualProperty Organization (WIPO) publications WO2018/160240 andWO/2018/144853 based on Patent Cooperation Treaty (PCT) patentapplications PCT/US2017/062703 and PCT/US2018/016632, respectively.

However, the conventional LIDAR systems implementing the aforementionedapproaches to phase-encoded Doppler LIDAR often lead to spurioussidelobes that can degrade the detection capability of the LIDAR system.

Accordingly, the present disclosure is directed to systems and methodsfor sidelobe suppression in phase-encoded Doppler LIDAR that improve thecapability of the LIDAR system to perform optical range measurements foroperating a vehicle.

In the following description, for the purposes of explanation, numerousspecific details are set forth in order to provide a thoroughunderstanding of the present disclosure. It will be apparent, however,to one skilled in the art that the present disclosure may be practicedwithout these specific details. In other instances, well-knownstructures and devices are shown in block diagram form in order to avoidunnecessarily obscuring the present disclosure.

1. Phase-Encoded Detection Overview

FIG. 1A is a schematic graph 110 that illustrates an example transmittedoptical phase-encoded signal for measurement of range, according to animplementation. The horizontal axis 112 indicates time in arbitraryunits from a start time at zero. The left vertical axis 114 a indicatespower in arbitrary units during a transmitted signal; and, the rightvertical axis 114 b indicates phase of the transmitted signal inarbitrary units. To most simply illustrate the technology ofphase-encoded LIDAR, binary phase encoding is demonstrated. Trace 115indicates the power relative to the left axis 114 a and is constantduring the transmitted signal and falls to zero outside the transmittedsignal. Dotted trace 116 indicates phase of the signal relative to acontinuous wave signal.

As can be seen, the trace is in phase with a carrier (phase=0) for partof the transmitted signal and then changes by Δϕ (phase=Δϕ) for shorttime intervals, switching back and forth between the two phase valuesrepeatedly over the transmitted signal as indicated by the ellipsis 117.The shortest interval of constant phase is a parameter of the encodingcalled pulse duration τ and is typically the duration of several periodsof the lowest frequency in the band. The reciprocal, 1/τ, is baud rate,where each baud indicates a symbol. The number N of such constant phasepulses during the time of the transmitted signal is the number N ofsymbols and represents the length of the encoding. In binary encoding,there are two phase values and the phase of the shortest interval can beconsidered a 0 for one value and a 1 for the other, thus the symbol isone bit, and the baud rate is also called the bit rate. In multiphaseencoding, there are multiple phase values. For example, 4 phase valuessuch as Δϕ*{0, 1, 2 and 3}, which, for Δϕ=π/2 (90 degrees), equals {0,π/2, π and 3π/2}, respectively; and, thus 4 phase values can represent0, 1, 2, 3, respectively. In this example, each symbol is two bits andhe bit rate is twice the baud rate.

Phase-shift keying (PSK) refers to a digital modulation scheme thatconveys data by changing (modulating) the phase of a reference signal(the carrier wave) as illustrated in FIG. 1A. The modulation isimpressed by varying the sine and cosine inputs at a precise time. Atradio frequencies (RF), PSK is widely used for wireless local areanetworks (LANs), RF identification (RFID) and Bluetooth communication.Alternatively, instead of operating with respect to a constant referencewave, the transmission can operate with respect to itself. Changes inphase of a single transmitted waveform can be considered the symbol. Inthis system, the demodulator determines the changes in the phase of thereceived signal rather than the phase (relative to a reference wave)itself. Since this scheme depends on the difference between successivephases, it is termed differential phase-shift keying (DPSK). DPSK can besignificantly simpler to implement than ordinary PSK, since there is noneed for the demodulator to have a copy of the reference signal todetermine the exact phase of the received signal (it is a non-coherentscheme).

For optical ranging applications, the carrier frequency is an opticalfrequency f_(C) and a RF f₀ is modulated onto the optical carrier. Thenumber N and duration τ of symbols are selected to achieve the desiredrange accuracy and resolution. The pattern of symbols is selected to bedistinguishable from other sources of coded signals and noise. Thus astrong correlation between the transmitted and returned signal is astrong indication of a reflected or backscattered signal. Thetransmitted signal is made up of one or more blocks of symbols, whereeach block is sufficiently long to provide strong correlation with areflected or backscattered return even in the presence of noise. In thefollowing discussion, it is assumed that the transmitted signal is madeup of M blocks of N symbols per block, where M and N are non-negativeintegers.

FIG. 1B is a schematic graph 120 that illustrates the exampletransmitted signal of FIG. 1A as a series of binary digits along withreturned optical signals for measurement of range, according to animplementation. The horizontal axis 122 indicates time in arbitraryunits after a start time at zero. The vertical axis 124 a indicatesamplitude of an optical transmitted signal at frequency f_(C)+f₀ inarbitrary units relative to zero. The vertical axis 124 b indicatesamplitude of an optical returned signal at frequency f_(C)+f₀ inarbitrary units relative to zero, and is offset from axis 124 a toseparate traces. Trace 125 represents a transmitted signal of M*N binarysymbols, with phase changes as shown in FIG. 1A to produce (e.g.,generate, create, etc.) a code starting with 00011010 and continuing asindicated by ellipsis. Trace 126 represents an idealized (noiseless)return signal that is scattered from an object that is not moving (andthus the return is not Doppler shifted). The amplitude is reduced, butthe code 00011010 is recognizable. Trace 127 represents an idealized(noiseless) return signal that is scattered from an object that ismoving and is therefore Doppler shifted. The return is not at the properoptical frequency f_(C)+f₀ and is not well detected in the expectedfrequency band, so the amplitude is diminished.

The observed frequency f′ of the return differs from the correctfrequency f=f_(C)+f₀ of the return by the Doppler effect given byEquation 1.

$\begin{matrix}{{f^{\prime} = {\frac{\left( {c + v_{o}} \right)}{\left( {c + v_{s}} \right)}f}};} & (1)\end{matrix}$

where c is the speed of light in the medium. Note that the twofrequencies are the same if the observer and source are moving at thesame speed in the same direction on the vector between the two. Thedifference between the two frequencies, Δf=f′−f, is the Doppler shift,Δf_(D), which causes problems for the range measurement, and is given byEquation 2.

$\begin{matrix}{{\Delta f_{D}} = {\left\lbrack {\frac{\left( {c + v_{o}} \right)}{\left( {c + v_{s}} \right)} - 1} \right\rbrack f}} & (2)\end{matrix}$

Note that the magnitude of the error increases with the frequency f ofthe signal. Note also that for a stationary LIDAR system (v_(o)=0), foran object moving at 10 meters a second (v_(o)=10), and visible light offrequency about 500 THz, then the size of the error is on the order of16 megahertz (MHz, 1 MHz=10⁶ hertz, Hz, 1 Hz=1 cycle per second). Invarious implementations described below, the Doppler shift error isdetected and used to process the data for the calculation of range.

FIG. 1C is a schematic graph 130 that illustrates examplecross-correlations of the transmitted signal with two returned signals,according to an implementation. In phase coded ranging, the arrival ofthe phase coded reflection is detected in the return by crosscorrelating the transmitted signal or other reference signal with thereturned signal, implemented practically by cross correlating the codefor a RF signal with an electrical signal from an optical detector usingheterodyne detection and thus down-mixing back to the RF band. Thehorizontal axis 132 indicates a lag time in arbitrary units applied tothe coded signal before performing the cross correlation calculationwith the returned signal. The vertical axis 134 indicates amplitude ofthe cross correlation computation. Cross correlation for any one lag iscomputed by convolving the two traces, i.e., multiplying correspondingvalues in the two traces and summing over all points in the trace, andthen repeating for each time lag. Alternatively, the cross correlationcan be accomplished by a multiplication of the Fourier transforms ofeach the two traces followed by an inverse Fourier transform. Efficienthardware and software implementations for a Fast Fourier transform (FFT)are widely available for both forward and inverse Fourier transforms.More precise mathematical expression for performing the crosscorrelation are provided for some example implementations, below.

Note that the cross-correlation computation is typically done withanalog or digital electrical signals after the amplitude and phase ofthe return is detected at an optical detector. To move the signal at theoptical detector to a RF frequency range that can be digitized easily,the optical return signal is optically mixed with the reference signalbefore impinging on the detector. A copy of the phase-encodedtransmitted optical signal can be used as the reference signal, but itis also possible, and often preferable, to use the continuous wavecarrier frequency optical signal output by the laser as the referencesignal and capture both the amplitude and phase of the electrical signaloutput by the detector.

Trace 136 represents cross correlation with an idealized (noiseless)return signal that is reflected from an object that is not moving (andthus the return is not Doppler shifted). A peak occurs at a time Δtafter the start of the transmitted signal. This indicates that thereturned signal includes a version of the transmitted phase codebeginning at the time Δt. The range R to the reflecting (orbackscattering) object is computed from the two way travel time delaybased on the speed of light c in the medium, as given by Equation 3.

$\begin{matrix}{R = {c*\Delta t/2}} & (3)\end{matrix}$

Dotted trace 137 represents cross correlation with an idealized(noiseless) return signal that is scattered from an object that ismoving (and thus the return is Doppler shifted). The return signal doesnot include the phase encoding in the proper frequency bin, thecorrelation stays low for all time lags, and a peak is not as readilydetected. Thus Δt is not as readily determined, and range R is not asreadily produced.

According to various implementations, the Doppler shift is determined inthe electrical processing of the returned signal; and the Doppler shiftis used to correct the cross-correlation calculation. Thus, a peak ismore readily found; and, range can be more readily determined. FIG. 1Dis a schematic graph 140 that illustrates an example spectrum of thetransmitted signal and an example spectrum of a Doppler shifted returnsignal, according to an implementation. The horizontal axis 142indicates RF frequency offset from an optical carrier f_(c) in arbitraryunits. The vertical axis 144 a indicates amplitude of a particularnarrow frequency bin, also called spectral density, in arbitrary unitsrelative to zero. The vertical axis 144 b indicates spectral density, inarbitrary units relative to zero, and is offset from axis 144 a toseparate traces. Trace 145 represents a transmitted signal; and, a peakoccurs at the proper RF f₀. Trace 146 represents an idealized(noiseless) return signal that is backscatter from an object that ismoving and is therefore Doppler shifted. The return does not have a peakat the proper RF f₀; but, instead, is blue shifted by Δf_(D) to ashifted frequency f_(S).

In some Doppler compensation implementations, rather than finding Δf_(D)by taking the spectrum of both transmitted and returned signals andsearching for peaks in each, then subtracting the frequencies ofcorresponding peaks, as illustrated in FIG. 1D, it is more efficient totake the cross-spectrum of the in-phase and quadrature component of thedown-mixed returned signal in the RF band. FIG. 1E is a schematic graph150 that illustrates an example cross-spectrum, according to animplementation. The horizontal axis 152 indicates frequency shift inarbitrary units relative to the reference spectrum; and, the verticalaxis 154 indicates amplitude of the cross-spectrum in arbitrary unitsrelative to zero. Trace 155 represents a cross spectrum with anidealized (noiseless) return signal generated by one object movingtoward the LIDAR system (blue shift of Δf_(D1)=Δf_(D) in FIG. 1D) and asecond object moving away from the LIDAR system (red shift of Δf_(D2)).A peak occurs when one of the components is blue shifted Δf_(D1); and,another peak occurs when one of the components is red shifted Δf_(D2).Thus, the Doppler shifts are determined. These shifts can be used todetermine a velocity of approach of objects in the vicinity of theLIDAR, as can be critical for collision avoidance applications.

As described in more detail below, the Doppler shift(s) detected in thecross spectrum are used to correct the cross correlation so that thepeak 135 is apparent in the Doppler compensated Doppler shifted returnat lag Δt, and range R can be determined. The information needed todetermine and compensate for Doppler shifts is either not collected ornot used in prior phase-encoded LIDAR systems.

2. Optical Phase-Encoded Detection Hardware Overview

In order to depict how a phase-encoded detection approach isimplemented, some generic and specific hardware approaches aredescribed. FIG. 2 is a block diagram that illustrates example componentsof a Doppler compensated LIDAR system, according to an implementation.The LIDAR system 200 includes a laser source 212, a splitter 216, amodulator 282 a, a reference path 220, scanning optics 218, a processingsystem 250, an acquisition system 240, and a detector array 230. Thelaser source 212 emits a carrier wave 201 that is phase modulated inphase modulator 282 to produce a phase coded optical signal 203 that hasa symbol length M*N and a duration D=M*N*τ. In some implementations, thephase encoding is controlled by a digital code module 271 in aprocessing system 250. A splitter 216 splits the optical signal into atarget beam 205, also called transmitted signal herein, with most of theenergy of the beam 203 and a reference beam 207 a with a much smalleramount of energy that is nonetheless enough to produce good mixing withthe returned beam 291 scattered from an object (not shown). In someimplementations, the splitter 216 is placed upstream of the phasemodulator 282. The reference beam 207 a passes through reference path220 and is directed to one or more detectors as reference beam 207 b.

In some implementations, the reference path 220 introduces a known delaysufficient for reference beam 207 b to arrive at the detector array 230with the scattered light. In some implementations the reference beam 207b is called the local oscillator (LO) signal referring to olderapproaches that produced the reference beam 207 b locally from aseparate oscillator. In various implementations, from less to moreflexible approaches, the reference is caused to arrive with thescattered or reflected field by: 1) putting a mirror in the scene toreflect a portion of the transmit beam back at the detector array sothat path lengths are well matched; 2) using a fiber delay to closelymatch the path length and broadcast the reference beam with optics nearthe detector array, as suggested in FIG. 2, with or without a pathlength adjustment to compensate for the phase difference observed orexpected for a particular range; or, 3) using a frequency shiftingdevice (acousto-optic modulator) or time delay of a local oscillatorwaveform modulation to produce a separate modulation to compensate forpath length mismatch; or some combination. In some implementations, theobject is close enough and the transmitted duration long enough that thereturns sufficiently overlap the reference signal without a delay. Insome implementations, a separate laser source is used for the referencebeam (local oscillator, LO) instead of using a beam split from the phasemodulated beam by splitter 216.

The detector array is a single paired or unpaired detector or a1-dimensional (1D) or 2-dimensional (2D) array of paired or unpaireddetectors arranged in a plane roughly perpendicular to returned beams291 from the object. The reference beam 207 b and returned beam 291 arecombined in zero or more optical mixers to produce an optical signal ofcharacteristics to be properly detected. The phase or amplitude of theinterference pattern, or some combination, is recorded by acquisitionsystem 240 for each detector at multiple times during the signalduration D. The number of temporal samples per signal duration affectsthe down-range extent. The number is often a practical considerationchosen based on number of symbols per signal, signal repetition rate andavailable camera frame rate. The frame rate is the sampling bandwidth,often called “digitizer frequency.” The only fundamental limitations ofrange extent are the coherence length of the laser and the length of theunique code before it repeats (for unambiguous ranging). This is enabledas any digital record of the returned bits could be cross correlatedwith any portion of transmitted bits from the prior transmissionhistory.

The acquired data is made available to a processing system 250, such asa computer system described below with reference to FIG. 15, or a chipset described below with reference to FIG. 15. The processing system 250includes a Doppler compensation module 270 a and a phase trackinginternal reflection subtraction module 270 b (shown in FIG. 2 as aninternal reflection subtraction module 270 b). The Doppler compensationmodule 270 a determines the size of the Doppler shift and the correctedrange based thereon along with any other corrections described herein.The internal reflection subtraction module 270 b determines the phasetracked internal reflection correction used by the processing system 250along with any other corrections known to provide a corrected rangemeasurement (e.g., signals produced from Doppler compensation module 270a). In some embodiments, the data processing also provides estimates ofDoppler shift in which the frequency of a return signal is shifted dueto motion of the object.

Any known apparatus or system may be used to implement the laser source212, phase modulator 282, beam splitter 216, reference path 220, opticalmixers 284, detector array 230, or acquisition system 240. Opticalcoupling to flood or focus on a target or focus past the pupil plane arenot depicted. As used herein, an optical coupler is any component thataffects the propagation of light within spatial coordinates to directlight from one component to another component, such as a vacuum, air,glass, crystal, mirror, lens, optical circulator, beam splitter, phaseplate, polarizer, optical fiber, optical mixer, among others, alone orin some combination.

2.1. Phase Encoded Optical Detection

In some implementations, electro-optic modulators provide the modulationfor phase modulator 282. The system is configured to produce a phasecode of length M*N and symbol duration z, suitable for the down-rangeresolution desired. For example, in 3D imaging applications, the totalnumber of pulses M*N is in a range from about 500 to about 4000. Becausethe processing is done in the digital domain, it is advantageous toselect M*N or N as a power of 2, e.g., in an interval from 512 to 4096.M is 1 when no averaging is done. If there are random noisecontributions, then it is advantages for M to be about 10. As a result,N is in a range from 512 to 4096 for M=1 and in a range from about 50 toabout 400 for M=10. For a 500 megabits per second (Mbps, 1 Mbps=1*10⁶bits per second) to 1 gigabits per second (Gbps, 1 Gbps=1*10⁹ bits persecond) baud rate, the time duration of these codes is then betweenabout 500 ns and 8 microseconds. It is noted that the range window canbe made to extend to several kilometers under these conditions and thatthe Doppler resolution can also be quite high (depending on the durationof the transmitted signal). Although processes, equipment, and datastructures are depicted in FIG. 2 as integral blocks in a particulararrangement for purposes of illustration, in other implementations oneor more processes or data structures, or portions thereof, are arrangedin a different manner, on the same or different hosts, in one or moredatabases, or are omitted, or one or more different processes or datastructures are included on the same or different hosts. For example,splitter 216 and reference path 220 include zero or more opticalcouplers.

In electrical engineering, a sinusoid with phase modulation(corresponding to an angle modulation between the real and imaginaryparts of the mathematical function exp(iωt)) can be decomposed into, orsynthesized from, two amplitude-modulated sinusoids that are offset inphase by one-quarter cycle (π/2 radians). All three functions have thesame frequency. The amplitude modulated sinusoids are known as in-phasecomponent (I) at 0 phase and quadrature component (Q) at a phase of π/2.A laser 310 produces an optical signal at a carrier frequency f_(c). Thelaser optical signal, L, is represented mathematically by Equation 4.

$\begin{matrix}{L = {I_{0}{\exp\left( {i\omega t} \right)}}} & (4)\end{matrix}$

where I₀ is the intensity output by the laser, exp( ) is the exponentialfunction such that exp(x)=e^(x), i is the imaginary number having theproperties of the square root of −1, t is time, and ω=2πf_(C) is theangular frequency corresponding to the optical carrier frequency f_(C).Mathematically this expression has a real part=I_(0R) cos(ωt) and animaginary part=I_(0t) sin(ωt), where I_(0R) is the real part of theintensity (in-phase) and I_(0t) is the imaginary part. The phase of theoscillation is given by the angle between the real and imaginary parts.Thus, L=I_(0R) cos(ωt)+i I_(0t) sin(ωt), and I₀ is the root of the sumof the squares of the real and imaginary parts, I₀ ²=I_(0R) ²+I_(0I) ².Splitter 216 directs a small portion of the intensity of the signal touse as a reference signal (called a local oscillator) LO given byEquation 5.

$\begin{matrix}{{{LO} = {{A_{LO}{\exp\left( {i\omega t} \right)}} = {{A_{R}{\cos\left( {\omega t} \right)}} + {A_{I}\sin{\left( {\omega t} \right).}}}}};} & \left( {5a} \right)\end{matrix}$

where A is a constant that represents the intensity effect of the beamsplitter 216. The electric field, E_(LO), can thus be written asEquation 5b.

$\begin{matrix}{E_{LO}{= {A_{LO}e^{i\omega t}}}} & \left( {5b} \right)\end{matrix}$

When the reference signal (LO) is the unmodulated laser signal (e.g.,the splitter 216 is before phase modulator 282), the entire signal is inphase and the imaginary component is zero, thus

$\begin{matrix}{{LO} = {A\cos{\left( {\omega t} \right).}}} & \left( {5c} \right)\end{matrix}$

The digital code module 272 in the processing system 250 sends anelectrical signal that indicates a digital code of symbols to be imposedas phase changes on the optical carrier, represented as B(t) where B(t)switches between 0 and π/2 as a function of t. For example, the phasemodulator 282 imposes the phase changes on the optical carrier by takingdigital lines out of a field programmable gate array (FPGA), amplifyingthem, and driving the electro-optic modulator (EOM, which is an opticaldevice capable of imposing modulation on phase, frequency, amplitude,and/or a polarization of a beam). The transmitted optical signal, T, isthen given by Equation 6.

$\begin{matrix}{{T = {C{\exp\left( {i\left\lbrack {{\omega t} + {B(t)}} \right\rbrack} \right)}}};} & (6)\end{matrix}$

where C is a constant that accounts for the reduction in Jo by splittingof the fraction A and any amplification or further reduction imposed bythe phase modulator 282.

Any phase modulator may be used as modulator 282. For example, anelectro-optic modulator (EOM) is used that includes a crystal, such aslithium niobate, whose refractive index is a function of the strength ofthe local electric field. That means that if lithium niobate is exposedto an electric field, light will travel more slowly through it. But thephase of the light leaving the crystal is directly proportional to thelength of time it takes that light to pass through it. Therefore, thephase of the laser light exiting an EOM can be controlled by changingthe electric field in the crystal according to the digital code providedby the digital code module 272. The phase change induces a broadbandfrequency signal, with bandwidth B approximately equal to the baud rate,1/τ.

The phase-encoded optical signal output by the phase modulator 282 istransmitted through some optical couplers 222, such as a polarizing beamsplitter (PBS) or other circulator optics, and any scanning optics,after which it is scattered by any object in the beam carrying thetransmitted signal. For example, it was found that the fiber coupledpolarizing beam splitter combiners offer better isolation between theports than the fiber-based circulators as an optical component ofcouplers 222. This is important in some implementations, because signalthat is not well isolated between transmit and receive will appear as anundesirable large peak in the range profiles. So, in someimplementations, the transmit signal is injected into port 1, is emittedout of port 2 and the back-scattered return signal is received in port 2and exits port 3. Some targets (e.g., metal targets) maintain thepolarization of the beam and some targets (e.g., diffuse targets)de-polarize the returned beam. In some implementations, a quarter waveplate is included in the transmit optics to properly compensate fortargets that do not depolarize.

The returned signal 291 is directed by the optical coupler 222, e.g., aPBS, to the optical mixer 284 where the return optical signal 291 ismixed with the reference optical signal (LO) 207 b given by Equation 5.The returned signal R from the kth object intercepted by the transmittedbeam is given by Equation 7a.

$\begin{matrix}{R_{k} = {A_{k}{\exp\left( {i\left\lbrack {{\left( {\omega + \omega_{Dk}} \right)\left( {t + {\Delta t_{k}}} \right)} + {B\left( {t + {\Delta t_{k}}} \right)}} \right\rbrack} \right)}}} & \left( {7a} \right)\end{matrix}$

where A_(k) is a constant accounting for the loss of intensity due topropagation to and from the object and scattering at the kth object,Δt_(k) is the two way travel time between the LIDAR system and the kthobject, and ω_(Dk)=2c Δf_(D) is the angular frequency of the Dopplerfrequency shift (called Doppler shift herein for convenience) of the kthobject. The electric field of the return signal, E_(R), summed over alltargets, is then given by Equation 7b.

$\begin{matrix}{E_{R} = {\sum\limits_{k}{A_{k}e^{i\lbrack{{\omega({t + {\Delta t_{k}}})} + {\omega_{D_{k}}({t + {\Delta t_{k}}})} + {B({t + {\Delta t_{k}}})}}\rbrack}}}} & \left( {7b} \right)\end{matrix}$

The coincident signals 291 and 207 b at the optical mixer 284 produce amixed optical signal with a beat frequency related to a difference infrequency and phase and amplitude of the two optical signals beingmixed, and an output depending on the function of the optical mixer 284.As used herein, down mixing refers to optical heterodyne detection,which is the implementation of heterodyne detection principle using anonlinear optical process. In optical heterodyne detection, called“down-mixing” herein, an optical signal of interest at some opticalfrequency is non-linearly mixed with a reference “local oscillator” (LO)that is set at a close-by frequency. The desired outcome is a differencefrequency, which carries the information (amplitude, phase, andfrequency modulation) of the original optical frequency signal, but isoscillating at a lower more easily processed frequency, called a beatfrequency herein, conveniently in the RF band. In some implementations,this beat frequency is in an RF band that can be output from the opticaldetector 230 as an electrical signal, such as an electrical analogsignal that can be easily digitized by RF analog to digital converters(ADCs) within acquisition system 240. The digital electrical signal isinput to the processing system 250 and used, along with the digital codefrom module 272, by the Doppler compensation module 270 to determinecross-correlation and range, and, in some implementations, the speed andDoppler shift.

In some implementations, the raw signals are processed to find theDoppler peak and that frequency, COD, is used to correct the correlationcomputation and determine the correct range. This is often accomplishedwith an autocorrelation computation, e.g. using the computationalefficiencies of a FFT and inverse FFT. The ambiguity in sign of theDoppler shift is tolerated or resolved using some scoring algorithm,such as described in previous work.

In other implementations, it was discovered to be advantageous if theoptical mixer and processing are configured to determine the in-phaseand quadrature components, and to use that separation to first estimateω_(D) and then use COD to correct the cross-correlation computation toderive Δt. The value of ω_(D) is also used to present the along rayspeed of the object. The value of Δt is then used to determine andpresent the range to the object using Equation 3 described above. Theseparation of the I and Q signals by the optical mixers enable clearlydetermining the sign of the Doppler shift, as described in internationalpatent application PCT/US2018/016632 published on 9 Aug. 2018 as WO2018/144853, the entire contents of which are hereby incorporated byreference as if fully set forth herein.

In some implementations the optical mixer 284 includes a 90 degreeHybrid optical mixer in which the return optical signal 291 is mixedwith the reference optical signal (LO) 207 b given by Equation 5b. Thereturned signal R is given by Equation 7a. The Hybrid mixer outputs fouroptical signals, termed I+, I−, Q+, and Q−, respectively, combining LOwith an in-phase component of the return signal R, designated RI, andquadrature component of the return signal R, designated R_(Q), asdefined in Equation 8a through 8d.

$\begin{matrix}{I+={{LO} + R_{I}}} & \left( {8a} \right)\end{matrix}$ $\begin{matrix}{I-={{LO} - R_{I}}} & \left( {8b} \right)\end{matrix}$ $\begin{matrix}{Q+={{LO} + R_{Q}}} & \left( {8c} \right)\end{matrix}$ $\begin{matrix}{{Q-={{LO} - R_{Q}}};} & \left( {8d} \right)\end{matrix}$

where RI is the in phase coherent cross term of the AC component of thereturn signal R and R_(Q) is the 90 degree out of phase coherent crossterm of the AC component of the return signal R. For example, theelectrical field of the above relations can be expressed based onEquations 5b and Equation 7b above and Equation 8e through Equation 8gbelow to produce Equations 8h through Equation 8k.

$\begin{matrix}{{LO} = {❘E_{LO}❘}^{2}} & \left( {8e} \right)\end{matrix}$ $\begin{matrix}{R_{I} = {{❘E_{R}❘}^{2} + {{Real}\left( {E_{R}E_{LO}^{*}} \right)}}} & \left( {8f} \right)\end{matrix}$ $\begin{matrix}{{R_{Q} = {{❘E_{R}❘}^{2} + {{Imag}\left( {E_{R}E_{LO}^{*}} \right)}}};} & \left( {8g} \right)\end{matrix}$

where * indicate a complex conjugate of a complex number, Imag( ) is afunction that returns the imaginary part of a complex number, and Real() is a function that returns the real part of a complex number. The ACterm E_(R) E*_(LO) cancels all of the optical frequency portion of thesignal, leaving only the RF “beating” of LO with the RF portion of thereturn signal—in this case the Doppler shift and code function. Theterms |E_(LO)|² and |E_(R)|² are constant (direct current, DC) terms.The latter is negligible relative to the former; so the latter term isneglected in the combinations expressed in Equations 8h through Equation8k, as particular forms of Equation 8a through Equation 8d.

$\begin{matrix}{I+={{❘E_{LO}❘}^{2} + {{Real}\left( {E_{R}E_{LO}^{*}} \right)}}} & \left( {8h} \right)\end{matrix}$ $\begin{matrix}{I-={{❘E_{LO}❘}^{2} - {{Real}\left( {E_{R}E_{LO}^{*}} \right)}}} & \left( {8i} \right)\end{matrix}$ $\begin{matrix}{Q+={{❘E_{LO}❘}^{2} + {{Imag}\left( {E_{R}E_{LO}^{*}} \right)}}} & \left( {8j} \right)\end{matrix}$ $\begin{matrix}{Q-={{❘E_{LO}❘}^{2} - {{Imag}\left( {E_{R}E_{LO}^{*}} \right)}}} & \left( {8k} \right)\end{matrix}$

The two in-phase components I+ and I− are combined at a balanceddetector pair to produce the RF electrical signal I on channel 1 (Ch1)and the two quadrature components Q+ and Q− are combined at a secondbalanced detector pair to produce the RF electrical signal Q on channel2 (Ch2), according to Equations 9a and 9b.

$\begin{matrix}{I = {I + {- I} -}} & \left( {9a} \right)\end{matrix}$ $\begin{matrix}{Q = {Q + {- Q} -}} & \left( {9b} \right)\end{matrix}$

The use of a balanced detector (with a balanced pair of opticaldetectors) provides an advantage of cancellation of common mode noise,which provides reliable measurements with high signal to noise ratio(SNR). In some implementations, such common mode noise is negligible orotherwise not of concern; so, a simple optical detector or unbalancedpair is used instead of a balanced pair. The Doppler compensation module270 then uses the signals I and Q to determine one or more Dopplershifts COD, with corresponding speeds, and then uses the value of ω_(D)and the values of B(t) from the digital code module 272 and the signalsI and Q to produce a corrected correlation trace in which peaks indicateone or more Δt at each of the one or more speeds. When multiple speedsare detected, each is associated with a peak in the correspondingmultiple correlation traces. In some implementations, this is done bycoincidence processing, to determine which current speed/locationpairing is most probably related to previous pairings of similarspeed/location. The one or more Δt are then used to determine one ormore ranges using Equation 3, described above.

It is advantageous to prepare a frequency domain representation of thecode used for correlation at the start and re-used for each measuringpoint in the scan; so, this is done in some implementations. A longcode, of duration D=(M*N)*z, is encoded onto the transmitted light, anda return signal of the same length in time is collected by the dataacquisition electronics 240. Both the code and signal are broken into Mshorter blocks of length N so that the correlation can be conductedseveral times on the same data stream and the results averaged toimprove signal to noise ratio (SNR). Each block of N symbols isdistinctive from a different block of N symbols and therefore each blockis an independent measurement. Thus, averaging reduces the noise in thereturn signal. The input I/Q signals are separated in phase by π/2. Insome implementations, further averaging is done over several illuminatedspots in order to remove the effect of reflections from purely internaloptics.

Families of good binary spreading sequences with minimalauto-correlation sidelobes for communication systems and radar and LIDARsystems such as the so-called “maximal-length sequences (m-sequences)”are known to exist to provide the codes used for phase modulation ofeach block of the M blocks. For the m-sequences, lists of all possiblem-sequences which are derived from primitive (irreducible) polynomialsof relatively short length (i.e., n=2^(Z)−1 where Z<11) have beenpublished as R. Church, “Tables of Irreducible Polynomials for the FirstFour Prime Moduli,” Annals of Mathematics, vol. 36, no. 1, pp. 198-209,1935 (Church hereinafter). The primitive polynomials and the m-sequencesderived from them can be defined by taps of a linear feedback shiftregister. As a result, these m-sequences do not have lengths that arepowers of 2.

However, use of power of 2 length Fast Fourier Transforms (FFT's) ishighly beneficial for computational cost and implementation in real-timeprocessing hardware such as FPGA. This means that true n=2^(Z)−1 lengthcodes are typically not used, and in fact the codes are padded by one ormore extra-symbols to make them a length N that is a power of 2. FIG. 3is a block diagram that illustrates an example difference between anm-sequence code and a practical code for digital signal processing(DSP), according to an implementation. Each numbered box represents onephase symbol (baud). The ideal m-sequence ends at symbol n=2^(Z)−1, buta typical practical code for use with DSP equipment has length N that isa power of two and ends at least one symbol later, represented by symbolN separated from symbol n by zero or more intervening symbols indicatedby ellipses.

This padding leads to larger sidelobe levels away from a peak in itsautocorrelation, with similar results expected during cross-correlationsused during Doppler processing described above. FIG. 4A is a graph thatillustrates an example autocorrelation of an m-sequence code withoutpadding, used in some implementations. The horizontal axis indicates lagin number of samples; and, the vertical axis indicates power in decibels(dB, 1 dB=½ log₁₀[100*reference power/reference power]) relative to anarbitrary reference power. Autocorrelation is computed for a 2^(Z)−1length m-sequence, Z=10 (corresponding to taps=11110001101 in Church),so n=1023. Here the sequence has been up-sampled by a factor of 2 tolength 2046 samples, two short of the 2048 that is a power of two. Theautocorrelation was computed without benefit of the efficiencies of DSP.The ideal autocorrelation from such an m-sequence consists of a singlepeak with correlation amplitude of 2^(Z) at lag=0, and an amplitude of−1 for all other lags. Note the computed autocorrelation peak stands atabout 68 dB, which is above a level noise floor at about 8 dB. This lowand level noise level offers a significant benefit in minimizingautocorrelation range and Doppler sidelobe errors.

FIG. 4B is a graph that illustrates an example autocorrelation of anm-sequence with padding, used in some implementations. The horizontalaxis indicates lag in number of samples; and, the vertical axisindicates power in decibels. Autocorrelation is of same m-sequence thathas been padded with two extra bits to make the sequence 2048 sampleslong, which is a power of 2 for efficient FFT processing. Here the 0 lagposition has been placed in the center of the plot window for clarity.Various sidelobe peaks arise, just as mathematical artifacts. Twolargest sidelobes are indicated by circles. These largest sidelobes havepeak power of almost 40 dB at apparent lags greater than 500 and lessthan −500 samples.

In practice, no real system is perfect; and, non-idealities such assub-sample shifts, analog filtering of amplifiers and modulators,non-integer Doppler shifts, etc. cause the sidelobes to rise in powerand change in apparent lag.

3. Techniques to Reduce Sidelobes

Several approaches are described herein that can be used to reduce theeffects of spurious sidelobes in phase-encoded high resolution DopplerLIDAR. These techniques can be used separately or in any combination, invarious implementations.

3.1 Fractional Clock Signals

In some implementations, 2^(Z) samples are collected in a delayed timeinterval of duration equal to the time that 2^(Z)−1 symbols aretransmitted. Thus, the sampling time is a fraction of the transmit pulseduration, τ, and, consequently, the transmit pulse rate is a fraction ofthe sampling rate. This can be accomplished in a variety of ways.

In a hardware implementation, a clock signal driving a digital to analogconverter (DAC) to provide the electrical signal sent to the phasemodulator 216 is different from the clock signal driving the analog todigital converter (ADC) used to collect the electrical signal at thedetector 230. This can be accomplished with a master clock pulse rateand a fractional-Z divider architecture. For example, the clock ratedriving the ADC is fractionally divided down (e.g., stepping down) togenerate the clock rate for the Tx generator in the ratio of(2^(Z)−1)/2^(Z). The hardware components are shown in FIG. 5.

FIG. 5 is a block diagram that illustrates example components of a highresolution LIDAR system with fractional divider added to adjust (e.g.,modify, change, stepping up, stepping down, etc.) clock signal frommaster clock, according to an implementation. Items 201 through 284 areas described above for FIG. 2. In this implementation a master clock 512implicit in FIG. 2 is made explicit; and issues a clock signal indicatedby a dotted line to the processing system. Also, analog electricalsignals are indicated by solid non-arrow lines, while digital signals,such as the signal from acquisition system 240 to processing system 250,and from processing system to phase modulator 272 are indicated bydashed lines. In contrast to the components depicted in FIG. 2, afractional divider 512 is added. This fractional divider 512 changes theclock signal input to the phase modulator 282, and a digital to analogconverter (DCA, not shown) within the modulator 282.

3.2 Received Signal Interpolation

In these implementations, 2^(Z)-1 samples (n=0, . . . , 2^(Z)-2) in thetime domain of the received signal are interpolated to 2^(Z) points(called up-sampling with samples n′=0, . . . , 2^(Z)-1) before FFTprocessing to determine cross-correlation. Each received signal isinterpolated to 2^(Z) points before the spectrum, or cross-correlationof real and imaginary parts, is computed using FFT processing. The firstpoint and the last point are set, i.e., to the first received phase(sample 0) and the last received phase (sample 2^(Z)-2), respectively.The remaining 2^(Z)-3 points are interpolated using any interpolationprocedure known in the art, such as linear interpolation or cubic splineinterpolation among others. The time value of the n'th interpolatedpoint is t′ given by Equation 10.

$\begin{matrix}{t^{\prime} = {{t\left( n^{\prime} \right)} = {\tau\frac{\left( {2^{Z} - 1} \right)}{2^{Z}}n^{\prime}}}} & (10)\end{matrix}$

In an example implementation, linear interpolation reduces the power inthe sidelobes by about 20 dB, as illustrated in FIG. 6A through FIG. 6C.

FIG. 6A is a graph that illustrates an example autocorrelation ofreceived signal based on a Z=11 m-sequence code (sequence #1,taps=100000000101 from Church), according to an implementation. Thehorizontal axis indicates range bin (equivalent to sample lag); and, thevertical axis indicates power relative to an arbitrary reference in dB.Because this is autocorrelation rather than cross correlation with thetransmitted signal, the peak is at zero lag. The received signal isassumed to have zero or integer multiple of native frequency resolutionof the system. The lags that have power of 0 dB represent where theautocorrelation was near perfect but with near equal numbers of +1 and−1 in the sum at that lag. As the sequence is odd, the correlation cannever be zero, so 0 dB is the minimum power in the correlation. This ispart of the ideal property of the m-sequences. At Z=11, there are 2047symbols. The received signal is up-sampled by a factor of 2 so thatthere are 4094 samples (which is 2 less than 4096 that is power of two);and, the autocorrelation is computed using a digital Fourier transform(DFT) that uses some acceleration approaches but does not achieve thespeed of the FFT that relies on a series that is a power of two. Notethe lack of sidelobe peaks and low power (<10 dB) outside the peak atzero lag, characteristic of m-sequence codes.

The plots in FIG. 6A and following plots below, unless otherwise stated,are produced by simulation in MATLAB that consisted of generating thebinary m-sequence C(t), up-sampling the sequence by a factor of L (e.g.,by a facto using Dr of L=2, which corresponds to repeating each symboltwice), applying the sequence to a complex exponential representing aDoppler shifted IQ sampled signal as given by Equation 11.

$\begin{matrix}{{{V(t)} = {\exp\left\lbrack {{\frac{i\pi}{2}{C(t)}} + {2\pi if_{Dop}t}} \right\rbrack}}.} & (11)\end{matrix}$

This time domain signal is transformed to the frequency domain using anFFT, multiplied by the conjugate of the FFT of C(t) that has beencircularly shifted to compensate for the integer proportion off f_(Dop),then inverse Fourier transformed with an IFFT to generate the“autocorrelation”.

FIG. 6B is a graph that illustrates an example autocorrelation ofreceived signal based on a Z=11 m-sequence code (#1 from Church) paddedwith zeros to a length of a power of two according to an implementation.The padding introduces sidelobes with spurious peaks at range bins ofplus and minus 1000, and power levels over 35 dB, up over 25 dB from theideal of FIG. 6A.

FIG. 6C is a graph that illustrates an example autocorrelation ofreceived signal based on a Z=11 m-sequence code (#1 from Church) wherethe signal is linearly interpolated from 4094 samples to 4096 samplesprior to FFT processing, according to an implementation. For thelinearly interpolated plots, C(t) is not interpolated before beinginserted into V(t) (as if the code is transmitted at 4094 samples) butV(t) and the C(t) that are correlated are linearly interpolated beforebeing subjected to a FFT and multiplied in the frequency domain. Asshown in FIG. 6C, the power of the sidelobe peaks are reduced by nearly20 dB, much closer to the ideal of FIG. 6A but at the increasedcomputational efficiency of power of two FFT processing.

FIG. 7A through FIG. 7C show processing similar to that in FIG. 6Athrough FIG. 6C, but for a received signal Doppler shifted a non-integer(3.05) multiple of the native frequency, according to an implementation.The sidelobe power levels rise in the precise processing depicted inFIG. 7A to almost 20 dB; but the sidelobe power does not risesubstantially in the more efficient FFT processing of FIG. 7B and FIG.7C compared to FIG. 6B and FIG. 6C, respectively. The interpolationperformed to produce FIG. 7C is still superior (by about 15 dB) to thezero padding of FIG. 7B and close to the more precise processing of FIG.7A.

FIG. 8A through FIG. 8C show processing similar to that in FIG. 6Athrough FIG. 6C, but for a received signal Doppler shifted a differentnon-integer (3.25) multiple of the native frequency, according to animplementation. The sidelobe power levels rise in the precise processingdepicted in FIG. 7A to about 30 dB; but the sidelobe power does not risesubstantially in the more efficient FFT processing of FIG. 7B comparedto FIG. 6B, and remains about 35 dB. The interpolation performed toproduce FIG. 8C is still superior (by about 5 dB) to the zero padding ofFIG. 8B and close to the more precise processing of FIG. 8A.

3.3 Transmitted Signal Interpolation

In these implementations, interpolation is performed on the transmitpath with sampling rate identical or at a harmonic of the ADC samplingrate of the acquisition system 240 to make the transmitted waveformperiodic in 2^(Z) samples of the ADC, but more closely represent am-sequence with 2^(Z)-1 symbols. The 2^(Z)-1 symbols of the m-sequenceare up-sampled by a factor K so that for every binary symbol in thebinary sequence, the symbol is repeated K times before the next symbolof the m-sequence is introduced. This up-sampled binary waveform is thenfiltered with a low-pass, digital filter having corner frequency nearthe sample rate of the ADC where only 2^(Z) samples are collected percode duration, rather than the K*2^(Z-1) samples that are generated inthe unfiltered sequence. This smoothed waveform (i.e., the output fromthe low-pass, digital filter) is then interpolated to generate 2^(Z)points from these K(2^(Z)−1) filtered waveform points. This is thetransmit path equivalent of the receive path interpolation describedabove.

In some implementations, this approach is implemented using aDigital-to-Analog Converter (DAC) between the digital code generator 272in processor system 250 and the phase modulator 282, such that the DACallows analog signal generation rather than simple binary signalgeneration.

3.4 Transmitted Signal Random Insertions

In these implementations, symbols are semi-randomly inserted in theup-sampled code, so that the inserted symbols do not change thecorrelation but do lengthen the sequence. As above, the 2^(Z)-1 symbolsof the m-sequence are up-sampled by a factor K so that for every binarysymbol in the binary sequence, the symbol is repeated K times. In thisimplementation, the K repeats are output at a rate K*f_(TX) that is Ktimes faster than a native rate f_(TX) of any analog-to-digitalconverter (ADC) otherwise used for resolving spatial and temporal spotswith the LIDAR. For example, the DAC or the Tx output is operated at afaster rate, but effectively generate a slower rate code, i.e.f_(TX)=1/τ where τ is the shortest duration feature in the codesequence. K extra symbols are inserted semi-randomly to increase thelength of the sequence from K*(2^(Z)−1) to K*2^(Z). The symbol insertedis not completely random because while the location of the insertion israndom, there is only one insertion per 2^(Z)-1 symbols and the valueinserted preferably matches at least one of the symbols that areadjacent to the insertion point. This ensures that runs of symbols(repeated instances of the same symbol in the sequence) are notinterrupted; but, only extended a small amount.

Some insertions are expected to result in better sidelobe performancethat other choices of insertions. In some implementations, an exhaustiveor non-exhaustive search for the best performing insertions isperformed. After testing with real or simulated data, a selectedsequence should very closely represent the 2^(Z)-1 m-sequence but spreadover 2^(Z) samples.

For example, a m-sequence 23 of size 2^(Z)-1, where Z=10, and up-sampledby factor of K=2 was used to compare zero padding with semi-randominsertions. FIG. 9A and FIG. 9B are graphs that illustrate examplesidelobe reduction achieved by semi-random insertions, according to animplementation. The horizontal axes indicate lag in time (range) bins;and, the vertical axes indicate power relative to a reference in dB.FIG. 9A depicts autocorrelation with bits added to end, to pad to 2^(Z)length. FIG. 9B depicts autocorrelation of the same sequence where bitswere inserted randomly to extend the code to length 2^(Z) samples. Inthis implementation, the m-sequence was up-sampled by a factor of 8, atwhich point one semi-random symbol was inserted randomly in each ofeight sets of 2^(Z)-1 symbols, before down sampling to 2 times nativecode rate. The two numbers above each of FIG. 9A and FIG. 9B representthe max and mean sidelobe levels (0.56886 and 0.34473, respectively, forFIG. 9A; and 0.14386 and 0.096916, respectively for FIG. 9B). Thesevalues demonstrate that this random selection of insertions achievedabout 6 dB decrease in sidelobe level.

The pros and cons of the processing described so far in this section aredescribed in Table 1.

TABLE 1 Comparisons of different approaches to use m-sequence codesConfiguration Pros Cons 2^(Z)-1 processing Best correlation InefficientFFT implementation sidelobe for real-time processing performancehardware such as FPGA Pad to 2^(Z) Straightforward, Largest root meansquare current (RMS) sidelobes under all implementation conditionsVariable Hardware No additional Hardware solution that uses Clocking2^(Z)-1 Tx to DSP required extra clocking chip, etc. 2^(Z) Rx samples RxInterpolation Relatively Additional DSP to perform the straightforward,interpolation. DSP processing only requires DSP requires processing2^(Z) samples modifications in time of 2^(Z)-1 samples from ADC. TxInterpolation No additional Uses either DAC for output for DSPprocessing linear interpolation implementation, or larger transmitterRAM block for random inserts in up-sampled implementation3.5 Selection of m-Sequence and Extraneous Spurs

Range spurs resulting from large internal reflections and the sidelobesof the phase coded LIDAR system were described in own previous work.These range spurs can give rise to false peaks and artifacts in theLIDAR image. Δt the time, a single specific m-sequence code was used forvarious system implementations; and, the dominant location of thesidelobe spur observed was at about 245 m, which for the utilized 625Mbit/s code rate and 2048 bit long (2¹¹) phase code is about at half therange window. The half-range window region is also where a root meansquare (rms) of the sidelobes is largest, so the prevalence of aspecific range spur there was not unexpected.

Different m-sequences for strength and location of spurs at zero-Dopplerand in a limited space of Doppler frequencies are here explored. FIG.10A through FIG. 10C are graphs that illustrate example characteristicsof largest sidelobes, according to various implementations. While therms sidelobe level of all the “m-sequences” of a certain length areidentical, the peak sidelobe of the different codes for a specificDoppler shift can vary by as much as 3 dB. This is demonstrated, forexample, in FIG. 10A. FIG. 10A is a graph that illustrates examplelargest sidelobe peak values for various m-sequences of size 2¹⁰-1(i.e., Z=10), according to various implementations. The horizontal axisindicates m-sequence identifier that varies from 1 to 59; and, thevertical axis indicates power in dB, relative to the actual peak at zerolag. The corresponding peaks values vary between about −23.5 dB andabout −26.5 dB, a range of 3 dB. In addition, the lag of the largestpeak can vary by 1000 samples, as demonstrated in FIG. 10B. FIG. 10B isa graph that illustrates example two largest sidelobe peak values andlag positions for various m-sequences of size 2¹⁰-1 (i.e., Z=10),according to various implementations. The horizontal axis indicates lagposition from 0 to 2000 samples; and, the vertical axis indicates powerin dB, relative to the actual peak at zero lag. The corresponding peaksvalues vary as above; but, the lag positions vary between 500 and 1500lag positions, a range of 1000 lag positions (samples). The largestsidelobe level can vary in lag position as shown in FIG. 10B by 1000samples. The variation appears to be symmetric about a lag of 1000samples. The two largest peaks tend to be mirror lags of each other.This applies perfectly in the idealized case, but asymmetries developwith Doppler shifts and signal distortions.

FIG. 10A and FIG. 10B, show the variation in largest sidelobe peaksvalues and positions for zero Doppler. The results change whenconsidering different Doppler bins. Here a cross-correlation is computedbetween emitted signal and (simulated) Doppler shifted return. FIG. 10Cis a graph that illustrates example two largest sidelobe peak values andlag positions for various m-sequences of size 2¹⁰-1 (i.e., Z=10), withinthe −100 to 100 Doppler bins. The horizontal axis indicates lag positionfrom 0 to 2000 samples; and, the vertical axis indicates power in dB,relative to the actual peak at zero lag. The increase in overallsidelobe level (from −23 to −20) indicates that the worst sidelobesoccur for Doppler away from zero. This analysis shows that in thetwo-dimensional lag-Doppler space, the largest sidelobe often occurs notalong the Doppler=0 line, but often occurs when there is a non-zeroDoppler shift.

By considering multiple Doppler bins the difference between the 59m-sequence codes converges to about 1 dB as shown in FIG. 11C, as largersidebands exist at different Doppler shift values in the differentcodes. This fact degrades the utility of identifying “good” codes orsequences among the different m-sequences based on ideal operation.Thus, with this idealized analysis, no preferred m-sequence code can berecommended for any implementation.

However, during the investigation of refined processing methods for them-sequences in phase coded LIDAR it was discovered that duringprocessing, a dominant range spur at specific range offset can becreated if the signal is distorted.

Spurious peaks (spurs) are observed in both measurements andsimulations. Recall in Equation 11, above, that, for the linearlyinterpolated plots, C(t) is not interpolated before being inserted intoV(t). However, it was possible to generate spurs if C(t) is interpolatedbefore being inserted into Equation 11. When simulations wereimplemented in this way, a strong dominant range spur in theautocorrelation was observed that happened to be suspiciously close tothe dominant spur observed in operational LIDAR systems.

In addition, when a different choice of m-sequence was chosen in thesimulation, the lag location of the dominant spur changed. FIG. 11A andFIG. 11B are plots that illustrate example spurs in simulations ofautocorrelations for different m-sequence codes, according to animplementation. The horizontal axes indicate range bin number; and thevertical axes indicates power in dB relative to an arbitrary reference.FIG. 11A is the simulated autocorrelation of a distorted received signalwith averaging of C(t) for m-sequence N=11, #1 taps=100000000101 fromChurch. The simulated autocorrelation shows a dominant spur at 2038range bins away (corresponding to a range of approximately 245 m).Sequence #43 is the sequence previously used in example own LIDARsystems. FIG. 11B is the simulated autocorrelation of a distortedreceived signal with averaging of C(t) for m-sequence N=11, #23taps=100100001101 from Church. The simulated autocorrelation shows adominant spur at 3230 range bins away (corresponding to a range ofapproximately 388 m).

This was confirmed with experimental data from coherent LIDAR systemsshowing the presence of a dominant spur at approximately 3230 bins. FIG.12 is a graph that illustrates an example waterfall plot of rangeprofiles using the m-sequence of FIG. 11B, according to animplementation. FIG. 12 depicts a series of range profiles in awaterfall plot (each line shifted up and to the right for clarity), witha horizontal axis indicating range bin and a vertical axis indicatingpower. An object at a range corresponding to a range bin is expected toproduce a peak in power in that range bin. In addition to the range peakof an actual object at a range bin near 100, and some closer-in peaksdue to internal reflections, there is a persistent spurious peak (spur)at a range bin of about 3400, close to the simulated spur at 3230 forthe same m-sequence. This confirmed that distortion in the m-sequencephase code leads to a dominant and predictable range spur. This wasfurther confirmed by trying different m-sequences and seeing the shiftof the dominant range spur artifact as expected from the simulations.Thus, one can infer that hardware implementations of m-sequence codeseffectively implements a filtering transformation similar to Equation 11with filtered C(t) over K repeats. This means that Equation 11 withaveraged C(t) can be used to estimate the location of spurious peaks forsuch hardware implementations.

Once a reliable technique for determining the location of this dominantrange spur was found (e.g., using Equation 11 with averaging of C(t)),all of the specific primitive sequences of length N=9, 10 and 11 inChurch were processed; and; the location of the dominant range spur iscomputed for each m-sequence. FIG. 13A through FIG. 13C are graphs thatillustrate example dominant range spurs for each m-sequence of size Z=9,Z=10, and Z=11, respectively, according to various implementations. Thehorizontal axis indicates arbitrary sequence number; and, the verticalaxis indicates range bin with the spurious peak. The number ofm-sequences are 47 for Z=9, 59 for Z=10, and 174 for Z=11. For anyapplication, it is advantageous to select (e.g., determine, choose,etc.) an m-sequence with a spur in a range bin that is easilyeliminated, e.g., one at about a factor of ten away from (or offsetfrom) an expected range.

For example, for automotive LIDAR applications, the effective actualrange (e.g., the “expected” range) may be significantly less than themaximum unambiguous range provided by the coded LIDAR parameters. Insuch a case, it is advantageous to choose (e.g., select, determine,etc.) an m-sequence whose dominant range spur is located at a largeoffset as this spur would appear at long range where no returns areexpected and therefore can be ignored. Thus, it is advantageous forautomotive LIDAR scenarios to select from among the m-sequences definedin Table 2, each of whose autocorrelation spur occurs at a lag >90% ofthe maximum unambiguous range. The Church taps are listed in Table 2 forunambiguous definition.

TABLE 2 Table of m-sequences formed from the primitive polynomials of Z= 11 with dominant range spur greater than 90% of the range windowoffset from the main peak. Primitive (irreducible) Polynomial Taps 1 0 11 0 1 0 0 0 0 0 1 1 1 1 1 1 0 0 1 0 0 0 1 1 1 0 1 0 1 0 1 1 0 0 1 1 0 10 0 1 1 0 1 1 0 1 1 1 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1 1 1 0 1 1 0 1 1 0 11 1 0 0 1 0 0 1 1 1 0 1 0 0 0 0 0 0 1 1 1 1 1 1 0 1 0 0 1 1 1 1 1 1 0 11 0 1 0 1 1 1 1 1

3.6 Method to Reduce Sidelobes in Efficient FFT Processing ofPhase-Encoded LIDAR

FIG. 14A is a flow diagram that illustrates an example method 1400A toreduce sidelobes in efficient FFT processing of phase-encoded LIDAR,according to an implementation. Although the method 1400A is depicted asintegral operations in a particular order for purposes of illustration,in other implementations one or more operations, or portions thereof,are arrange in a different order, in series or overlapping in time, orare omitted, or additional operations are added. In some embodiments,some or all operations of method 1400A may be performed by one or moreLIDAR systems, such as LIDAR system 200 in FIG. 2, LIDAR system 300 inFIG. 3, and/or LIDAR system 500 in FIG. 5. For example, in someembodiments, operations 1401A and 1405A through 1413A may be performedby processing system 250 in FIG. 3 and/or processing system 250 in FIG.5.

In operation 1401A, an m-sequence is selected for use as a code forphase-encoded LIDAR, such as high resolution Doppler LIDAR, e.g.,mounted on or near a vehicle and configured to contribute to theoperation of the vehicle. For example, in some automotive vehicleoperations, the m-sequence is selected from Table 2. The selectedm-sequence has exactly 2^(Z)-1 binary symbols, where Z is selected in arange from 1 to 100, and typically in a range from 9 to 11 forautomotive vehicles.

In operation 1403A, the 2^(Z)-1 symbols are transmitted in a first timeinterval having a first duration. In some implementations, the firstduration is selected on the order of nanoseconds to milliseconds, andadvantageously on the order of a microsecond for automotive operations.In several implementations, the first duration is dictated by the timeto collect 2^(Z) samples. This can be accomplished, in someimplementations, by stepping down a clock signal relative to a clocksignal for sampling a return waveform, as described above in section3.1. In some implementations, this is accomplished by interpolation asdescribed in section 3.3. For example, the 2^(Z)-1 symbols of them-sequence are up-sampled by a factor K. This up-sampled binary waveformis then filtered with a low-pass, digital filter having corner frequencynear the sample rate. This smoothed waveform is then interpolated togenerate 2^(Z) points. In some implementations, this is accomplished, asdescribed in section 3.4, by semi-randomly inserting symbols in anup-sampled code, so that the inserted symbols lengthen the sequence tothe first duration without padding with zeros.

In operation 1405A, 2^(Z) samples are collected in a delayed second timeinterval having a duration equal to the first duration. In someimplementations, this is the natural time to take 2^(Z) samples becausethe transmit symbols were expanded to that duration, as described insection 3.1, 3.3 or 3.4. In some implementations, the 2^(Z) samples arecollected faster—in a duration that is natural for transmitting 2^(Z)-1symbols, by interpolation as described above in section 3.2. Eachreceived signal is interpolated to 2^(Z) points.

In operation 1407A, the 2^(Z) samples collected in operation 1405A areprocessed using efficient power of two FFT to derive range or Dopplershift or both. For example, the spectrum, or cross-correlation of realand imaginary parts, is computed using FFT processing.

In operation 1409A, it is determined whether another signal is to besent. If so, control passes back to operation 1403A; and the loop ofoperations 1403A through 1409A is repeated until no new signals aredesired for a particular use.

When sufficient signals have been transmitted, control passes tooperation 1411A to use the derived range or Doppler shift or both, e.g.,to control or assist the operation of a vehicle. After the derived rangeor Doppler shift or both are used, in operation 1413A it is determinedif end conditions are satisfied, e.g., the vehicle operations haveceased. If not, then control passes back to operation 1403A and the loopthrough operation 1409A is again repeated as desired. If so, then theprocess ends.

FIG. 14B is a flow diagram that illustrates an example method 1400B toreduce sidelobes in efficient FFT processing of phase-encoded LIDAR,according to an implementation. Although the method 1400B is depicted asintegral operations in a particular order for purposes of illustration,in other implementations one or more operations, or portions thereof,are arrange in a different order, in series or overlapping in time, orare omitted, or additional operations are added. In some embodiments,some or all operations of method 1400B may be performed by one or moreLIDAR systems, such as LIDAR system 200 in FIG. 2, LIDAR system 300 inFIG. 3, and/or LIDAR system 500 in FIG. 5. For example, in someembodiments, operations 1401B and 1405B through 1413B may be performedby processing system 250 in FIG. 3 and/or processing system 250 in FIG.5.

The method 1400B includes operation 1401B of determining a sequence codethat is indicative of a sequence of phases for an optical signal. Themethod 1400B includes the operations 1403B of modulating an opticalsignal based on the sequence code to produce a phase-encoded opticalsignal. The method 1400B includes the operations 1405B of transmittingthe phase-encoded optical signal to an environment. The method 1400Bincludes the operations 1407B of receiving, from the environment, areturned optical signal in response to transmitting the phase-encodedoptical signal. The method 1400B includes the operations 1409B ofgenerating, based on the returned optical signal, an electrical signal.The method 1400B includes the operations 14011B of determining a Dopplerfrequency shift in the returned optical signal based on the electricalsignal.

5. Computational Hardware Overview

FIG. 15 is a block diagram that illustrates a computer system 1500 uponwhich an implementation of the present disclosure may be implemented.Computer system 1500 includes a communication mechanism such as a bus1510 for passing information between other internal and externalcomponents of the computer system 1500. Information is represented asphysical signals of a measurable phenomenon, typically electricvoltages, but including, in other implementations, such phenomena asmagnetic, electromagnetic, pressure, chemical, molecular atomic andquantum interactions. For example, north and south magnetic fields, or azero and non-zero electric voltage, represent two states (0, 1) of abinary digit (bit). Other phenomena can represent digits of a higherbase. A superposition of multiple simultaneous quantum states beforemeasurement represents a quantum bit (qubit). A sequence of one or moredigits constitutes digital data that is used to represent a number orcode for a character. In some implementations, information called analogdata is represented by a near continuum of measurable values within aparticular range. Computer system 1500, or a portion thereof,constitutes a means for performing one or more operations of one or moremethods described herein.

A sequence of binary digits constitutes digital data that is used torepresent a number or code for a character. A bus 1510 includes manyparallel conductors of information so that information is transferredquickly among devices coupled to the bus 1510. One or more processors1502 for processing information are coupled with the bus 1510. Aprocessor 1502 performs a set of operations on information. The set ofoperations include bringing information in from the bus 1510 and placinginformation on the bus 1510. The set of operations also typicallyinclude comparing two or more units of information, shifting positionsof units of information, and combining two or more units of information,such as by addition or multiplication. A sequence of operations to beexecuted by the processor 1502 constitutes computer instructions.

Computer system 1500 also includes a memory 1504 coupled to bus 1510.The memory 1504, such as a random access memory (RAM) or other dynamicstorage device, stores information including computer instructions.Dynamic memory allows information stored therein to be changed by thecomputer system 1500. RAM allows a unit of information stored at alocation called a memory address to be stored and retrievedindependently of information at neighboring addresses. The memory 1504is also used by the processor 1502 to store temporary values duringexecution of computer instructions. The computer system 1500 alsoincludes a read only memory (ROM) 1506 or other static storage devicecoupled to the bus 1510 for storing static information, includinginstructions, that is not changed by the computer system 1500. Alsocoupled to bus 1510 is a non-volatile (persistent) storage device 1508,such as a magnetic disk or optical disk, for storing information,including instructions, that persists even when the computer system 1500is turned off or otherwise loses power.

Information, including instructions, is provided to the bus 1510 for useby the processor from an external input device 1512, such as a keyboardcontaining alphanumeric keys operated by a human user, or a sensor. Asensor detects conditions in its vicinity and transforms thosedetections into signals compatible with the signals used to representinformation in computer system 1500. Other external devices coupled tobus 1510, used primarily for interacting with humans, include a displaydevice 1514, such as a cathode ray tube (CRT) or a liquid crystaldisplay (LCD), for presenting images, and a pointing device 1516, suchas a mouse or a trackball or cursor direction keys, for controlling aposition of a small cursor image presented on the display 1514 andissuing commands associated with graphical elements presented on thedisplay 1514.

In the illustrated implementation, special purpose hardware, such as anapplication specific integrated circuit (IC) 1520, is coupled to bus1510. The special purpose hardware is configured to perform operationsnot performed by processor 1502 quickly enough for special purposes.Examples of application specific ICs include graphics accelerator cardsfor generating images for display 1514, cryptographic boards forencrypting and decrypting messages sent over a network, speechrecognition, and interfaces to special external devices, such as roboticarms and medical scanning equipment that repeatedly perform some complexsequence of operations that are more efficiently implemented inhardware.

Computer system 1500 also includes one or more instances of acommunications interface 1570 coupled to bus 1510. Communicationinterface 1570 provides a two-way communication coupling to a variety ofexternal devices that operate with their own processors, such asprinters, scanners and external disks. In general the coupling is with anetwork link 1578 that is connected to a local network 1580 to which avariety of external devices with their own processors are connected. Forexample, communication interface 1570 may be a parallel port or a serialport or a universal serial bus (USB) port on a personal computer. Insome implementations, communications interface 1570 is an integratedservices digital network (ISDN) card or a digital subscriber line (DSL)card or a telephone modem that provides an information communicationconnection to a corresponding type of telephone line. In someimplementations, a communication interface 1570 is a cable modem thatconverts signals on bus 1510 into signals for a communication connectionover a coaxial cable or into optical signals for a communicationconnection over a fiber optic cable. As another example, communicationsinterface 1570 may be a local area network (LAN) card to provide a datacommunication connection to a compatible LAN, such as Ethernet. Wirelesslinks may also be implemented. Carrier waves, such as acoustic waves andelectromagnetic waves, including radio, optical and infrared wavestravel through space without wires or cables. Signals include man-madevariations in amplitude, frequency, phase, polarization or otherphysical properties of carrier waves. For wireless links, thecommunications interface 1570 sends and receives electrical, acoustic orelectromagnetic signals, including infrared and optical signals, thatcarry information streams, such as digital data.

The term computer-readable medium is used herein to refer to any mediumthat participates in providing information to processor 1502, includinginstructions for execution. Such a medium may take many forms,including, but not limited to, non-volatile media, volatile media andtransmission media. Non-volatile media include, for example, optical ormagnetic disks, such as storage device 1508. Volatile media include, forexample, dynamic memory 1504. Transmission media include, for example,coaxial cables, copper wire, fiber optic cables, and waves that travelthrough space without wires or cables, such as acoustic waves andelectromagnetic waves, including radio, optical and infrared waves. Theterm computer-readable storage medium is used herein to refer to anymedium that participates in providing information to processor 1502,except for transmission media.

Common forms of computer-readable media include, for example, a floppydisk, a flexible disk, a hard disk, a magnetic tape, or any othermagnetic medium, a compact disk ROM (CD-ROM), a digital video disk (DVD)or any other optical medium, punch cards, paper tape, or any otherphysical medium with patterns of holes, a RAM, a programmable ROM(PROM), an erasable PROM (EPROM), a FLASH-EPROM, or any other memorychip or cartridge, a carrier wave, or any other medium from which acomputer can read. The term non-transitory computer-readable storagemedium is used herein to refer to any medium that participates inproviding information to processor 1502, except for carrier waves andother signals.

Logic encoded in one or more tangible media includes one or both ofprocessor instructions on a computer-readable storage media and specialpurpose hardware, such as ASIC 1520.

Network link 1578 typically provides information communication throughone or more networks to other devices that use or process theinformation. For example, network link 1578 may provide a connectionthrough local network 1580 to a host computer 1582 or to equipment 1584operated by an Internet Service Provider (ISP). ISP equipment 1584 inturn provides data communication services through the public, world-widepacket-switching communication network of networks now commonly referredto as the Internet 1590. A computer called a server 1592 connected tothe Internet provides a service in response to information received overthe Internet. For example, server 1592 provides information representingvideo data for presentation at display 1514.

The present disclosure is related to the use of computer system 1500 forimplementing the techniques described herein. According to oneimplementation of the present disclosure, those techniques are performedby computer system 1500 in response to processor 1502 executing one ormore sequences of one or more instructions contained in memory 1504.Such instructions, also called software and program code, may be readinto memory 1504 from another computer-readable medium such as storagedevice 1508. Execution of the sequences of instructions contained inmemory 1504 causes processor 1502 to perform the method operationsdescribed herein. In alternative implementations, hardware, such asapplication specific integrated circuit 1520, may be used in place of orin combination with software to implement the present disclosure. Thus,implementations of the present disclosure are not limited to anyspecific combination of hardware and software.

The signals transmitted over network link 1578 and other networksthrough communications interface 1570, carry information to and fromcomputer system 1500. Computer system 1500 can send and receiveinformation, including program code, through the networks 1580, 1590among others, through network link 1578 and communications interface1570. In an example using the Internet 1590, a server 1592 transmitsprogram code for a particular application, requested by a message sentfrom computer 1500, through Internet 1590, ISP equipment 1584, localnetwork 1580 and communications interface 1570. The received code may beexecuted by processor 1502 as it is received, or may be stored instorage device 1508 or other non-volatile storage for later execution,or both. In this manner, computer system 1500 may obtain applicationprogram code in the form of a signal on a carrier wave.

Various forms of computer readable media may be involved in carrying oneor more sequence of instructions or data or both to processor 1502 forexecution. For example, instructions and data may initially be carriedon a magnetic disk of a remote computer such as host 1582. The remotecomputer loads the instructions and data into its dynamic memory andsends the instructions and data over a telephone line using a modem. Amodem local to the computer system 1500 receives the instructions anddata on a telephone line and uses an infra-red transmitter to convertthe instructions and data to a signal on an infra-red a carrier waveserving as the network link 1578. An infrared detector serving ascommunications interface 1570 receives the instructions and data carriedin the infrared signal and places information representing theinstructions and data onto bus 1510. Bus 1510 carries the information tomemory 1504 from which processor 1502 retrieves and executes theinstructions using some of the data sent with the instructions. Theinstructions and data received in memory 1504 may optionally be storedon storage device 1508, either before or after execution by theprocessor 1502.

FIG. 16 illustrates a chip set 1600 upon which one or more features ofthe present disclosure may be implemented. Chip set 1600 is programmedto perform one or more operations of a method described herein andincludes, for instance, the processor and memory components describedwith respect to FIG. 15 incorporated in one or more physical packages(e.g., chips). By way of example, a physical package includes anarrangement of one or more materials, components, and/or wires on astructural assembly (e.g., a baseboard) to provide one or morecharacteristics such as physical strength, conservation of size, and/orlimitation of electrical interaction. It is contemplated that in certainimplementations the chip set can be implemented in a single chip. Chipset 1600, or a portion thereof, constitutes a means for performing oneor more operations of a method described herein.

In one implementation, the chip set 1600 includes a communicationmechanism such as a bus 1601 for passing information among thecomponents of the chip set 1600. A processor 1603 has connectivity tothe bus 1601 to execute instructions and process information stored in,for example, a memory 1605. The processor 1603 may include one or moreprocessing cores with each core configured to perform independently. Amulti-core processor enables multiprocessing within a single physicalpackage. Examples of a multi-core processor include two, four, eight, orgreater numbers of processing cores. Alternatively or in addition, theprocessor 1603 may include one or more microprocessors configured intandem via the bus 1601 to enable independent execution of instructions,pipelining, and multithreading. The processor 1603 may also beaccompanied with one or more specialized components to perform certainprocessing functions and tasks such as one or more digital signalprocessors (DSP) 1607, or one or more application-specific integratedcircuits (ASIC) 1609. A DSP 1607 typically is configured to processreal-world signals (e.g., sound) in real time independently of theprocessor 1603. Similarly, an ASIC 1609 can be configured to performedspecialized functions not easily performed by a general purposedprocessor. Other specialized components to aid in performing theinventive functions described herein include one or more fieldprogrammable gate arrays (FPGA) (not shown), one or more controllers(not shown), or one or more other special-purpose computer chips.

The processor 1603 and accompanying components have connectivity to thememory 1605 via the bus 1601. The memory 1605 includes both dynamicmemory (e.g., RAM, magnetic disk, writable optical disk, etc.) andstatic memory (e.g., ROM, CD-ROM, etc.) for storing executableinstructions that when executed perform one or more operations of amethod described herein. The memory 1605 also stores the data associatedwith or generated by the execution of one or more operations of themethods described herein.

6. Alterations, Extensions and Modifications

In the foregoing specification, the present disclosure has beendescribed with reference to specific implementations thereof. It will,however, be evident that various modifications and changes may be madethereto without departing from the broader spirit and scope of thepresent disclosure. The specification and drawings are, accordingly, tobe regarded in an illustrative rather than a restrictive sense.Throughout this specification and the claims, unless the contextrequires otherwise, the word “comprise” and its variations, such as“comprises” and “comprising,” will be understood to imply the inclusionof a stated item, element or operation or group of items, elements oroperations but not the exclusion of any other item, element or operationor group of items, elements or operations. Furthermore, the indefinitearticle “a” or “an” is meant to indicate one or more of the item,element or operation modified by the article. As used herein, unlessotherwise clear from the context, a value is “about” another value if itis within a factor of two (twice or half) of the other value. Whileexample ranges are given, unless otherwise clear from the context, anycontained ranges are also intended in various implementations. Thus, arange from 0 to 10 includes the range 1 to 4 in some implementations.

Notwithstanding that the numerical ranges and parameters setting forththe broad scope are approximations, the numerical values set forth inspecific non-limiting examples are reported as precisely as possible.Any numerical value, however, inherently contains certain errorsnecessarily resulting from the standard deviation found in theirrespective testing measurements at the time of this writing.Furthermore, unless otherwise clear from the context, a numerical valuepresented herein has an implied precision given by the least significantdigit. Thus a value 1.1 implies a value from 1.05 to 1.15. The term“about” is used to indicate a broader range centered on the given value,and unless otherwise clear from the context implies a broader rangearound the least significant digit, such as “about 1.1” implies a rangefrom 1.0 to 1.2. If the least significant digit is unclear, then theterm “about” implies a factor of two, e.g., “about X” implies a value inthe range from 0.5× to 2×, for example, about 100 implies a value in arange from 50 to 200. Moreover, all ranges disclosed herein are to beunderstood to encompass any and all sub-ranges subsumed therein. Forexample, a range of “less than 10” can include any and all sub-rangesbetween (and including) the minimum value of zero and the maximum valueof 10, that is, any and all sub-ranges having a minimum value of equalto or greater than zero and a maximum value of equal to or less than 10,e.g., 1 to 4.

Some implementations of the present disclosure are described below inthe context of binary, π/2 (90 degree) phase encoding at a radiofrequency modulated onto an optical signal; but, implementations are notlimited to this context. In other implementations, other phase encodingis used, with different phase differences (e.g., 30, 60, or 180 degrees)or encoding with 3 or more different phases. Implementations aredescribed in the context of a single optical beam and its return on asingle detector or pair of detectors, which in other implementations canthen be scanned using any known scanning means, such as linear steppingor rotating optical components or with arrays of transmitters or arraysof detectors or pairs of detectors.

What is claimed:
 1. A method for controlling a light detection andranging (LIDAR) sensor system including one or more processors, themethod comprising: determining, by the one or more processors, a codethat has a first set of symbols having a first number of symbols;transmitting, by the one or more processors to an environment, anoptical signal generated based on the code, wherein the first set ofsymbols are transmitted as part of the optical signal in a firstduration; in response to transmitting the optical signal, receiving, bythe one or more processors, a returned optical signal that is reflectedfrom an object in the environment; determining, by the one or moreprocessors, a second number of symbols to be sampled, the second numberof symbols being different than the first number of symbols; sampling,by the one or more processors based on the returned optical signal, asecond set of symbols in a second duration, wherein the second set ofsymbols have the second number of symbols; and determining, by the oneor more processors based on the second set of symbols, a range to theobject.
 2. The method as recited in claim 1, wherein a length of thesecond duration is the same as or substantially similar to a length ofthe first duration.
 3. The method as recited in claim 1, wherein thesecond set of symbols are sampled based on a first clock signal, and themethod further comprising: adjusting the first clock signal to generatea second clock signal based on which another set of symbols are to betransmitted, wherein the another set of symbols have the first number ofsymbols.
 4. The method as recited in claim 1, wherein transmitting thefirst set of symbols comprises: padding the code by adding one or moresymbols to the code such that the code has the second number of symbols.5. The method as recited in claim 4, further comprising: inserting theone or more symbols to the code at an insertion location such that asymbol of the inserted symbols matches at least one of symbols that areadjacent to the insertion location.
 6. The method as recited in claim 1,wherein transmitting the first set of symbols comprises: performing aninterpolation on the first set of symbols to generate a third set ofsymbols in the code, such that the code has the second number ofsymbols.
 7. The method as recited in claim 1, wherein transmitting thefirst set of symbols comprises: up-sampling the code to generate asample signal; and filtering the sample signal to generate a smoothedsignal.
 8. The method as recited in claim 1, wherein the smoothed signalis generated using a low-pass digital filter.
 9. The method as recitedin claim 1, wherein sampling the second set of symbols comprises:sampling, from the returned optical signal, a fourth set of symbols; andperforming an interpolation on the fourth set of symbols to generate thesecond set of symbols.
 10. The method as recited in claim 1, furthercomprising: generating, based on the returned optical signal, anelectrical signal; and determining the range to the object based on aFourier Transform of the electrical signal.
 11. The method as recited inclaim 1, further comprising: providing operation signals to a vehiclecontrol system of a vehicle such that the vehicle control systemcontrols the vehicle using the range to the object.
 12. A method forcontrolling a vehicle using a light detection and ranging (LIDAR) sensorsystem and one or more processors, comprising: determining, by the LIDARsensor system, a code that has a first set of symbols having a firstnumber of symbols; transmitting, by the LIDAR sensor system to anenvironment, an optical signal generated based on the code, wherein thefirst set of symbols are transmitted as part of the optical signal in afirst duration; in response to transmitting the optical signal,receiving, by the LIDAR sensor system, a returned optical signal that isreflected from an object in the environment; determining, by the LIDARsensor system, a second number of symbols to be sampled, the secondnumber of symbols being different than the first number of symbols;sampling, by the LIDAR sensor system based on the returned opticalsignal, a second set of symbols in a second duration, wherein the secondset of symbols have the second number of symbols; and determining, bythe LIDAR sensor system based on the second set of symbols, a range tothe object; and controlling, by the one or more processors, operation ofthe vehicle using the range to the object.
 13. The method as recited inclaim 12, wherein a length of the second duration is the same as orsubstantially similar to a length of the first duration.
 14. The methodas recited in claim 12, wherein the second set of symbols are sampledbased on a first clock signal, and the method further comprising:adjusting the first clock signal to generate a second clock signal basedon which another set of symbols are to be transmitted, wherein theanother set of symbols have the first number of symbols.
 15. The methodas recited in claim 12, wherein transmitting the first set of symbolscomprises: padding the code by adding one or more symbols to the codesuch that the code has the second number of symbols.
 16. The method asrecited in claim 15, further comprising: inserting the one or moresymbols to the code at an insertion location such that a symbol of theinserted symbols matches at least one of symbols that are adjacent tothe insertion location.
 17. The method as recited in claim 12, whereintransmitting the first set of symbols comprises: performing aninterpolation on the first set of symbols to generate a third set ofsymbols in the code, such that the code has the second number ofsymbols.
 18. The method as recited in claim 12, wherein transmitting thefirst set of symbols comprises: up-sampling the code to generate asample signal; and filtering the sample signal using a low-pass digitalfilter to generate a smoothed signal.
 19. The method as recited in claim12, wherein sampling the second set of symbols comprises: sampling, fromthe returned optical signal, a fourth set of symbols; and performing aninterpolation on the fourth set of symbols to generate the second set ofsymbols.
 20. The method as recited in claim 12, further comprising:generating, based on the returned optical signal, an electrical signal;and determining the range to the object based on a Fourier Transform ofthe electrical signal.